package org.mspring.mlog.service;

import java.util.List;

import org.mspring.mlog.entity.Comment;
import org.mspring.platform.dao.hibernate.IGenericDao;
import org.mspring.platform.dao.support.Page;

/**
 * 
 * @author Gao Youbo
 * @since 2013-06-18 16:34:42
 */
public interface CommentService extends IGenericDao<Comment, java.lang.Long> {

    /**
     * 审核通过
     * 
     * @param ids
     */
    void approved(Long... ids);

    /**
     * 标记为垃圾评论
     * 
     * @param ids
     */
    void spam(Long... ids);

    /**
     * 移入回收站
     * 
     * @param ids
     */
    void recycle(Long... ids);

    /**
     * 更新评论状态
     * 
     * @param id
     * @param type
     */
    void updateCommentStatus(Long id, String status);

    /**
     * 查找最近的num条评论
     * 
     * @param num
     * @return
     */
    List<Comment> getRecentComment(int num);

    /**
     * 查找最近的NUM条评论
     * 
     * @param fType
     * @param num
     * @return
     */
    List<Comment> getRecentComment(String fType, int num);

    /**
     * 查找Comment
     * 
     * @param fType
     * @return
     */
    List<Comment> findComment(String fType);

    /**
     * 查找Comment
     * 
     * @param fType
     * @param comment
     * @return
     */
    Page<Comment> findComment(String fType, Page<Comment> page);

    /**
     * 查找Comment
     * 
     * @param fType
     * @param status
     * @param page
     * @return
     */
    Page<Comment> findComment(String fType, String status, Page<Comment> page);

    /**
     * 查找Comment
     * 
     * @param ftype
     * @param fkey
     * @param page
     * @return
     */
    Page<Comment> findComment(String ftype, String fkey, int page);

    /**
     * 查找Comment
     * 
     * @param ftype
     * @param fkey
     * @param page
     * @param status
     * @return
     */
    Page<Comment> findComment(String ftype, String fkey, int page, String status);

    /**
     * 安全的删除
     * 
     * @param id
     * @param user
     */
    void safeRemove(Long id, Long user);
}